# ————————————————————  9.4.1	实例方法  ————————————————————
# class Car:
#     def test(self):                          # 定义实例方法
#         print("我是实例方法")
# car = Car()
# car.test()                                    # 通过对象调用实例方法
# Car.test()                                    # 通过类调用实例方法

# class Car:
#     def test(self):
#         print("我是实例方法")
#     def test2(self):
#         self.test()   # 在实例方法内部调用其他实例方法
# car = Car()
# car.test2()           # 在类外部通过对象调用实例方法


# ————————————————————  9.4.2	类方法  ————————————————————
# class Car:
#     @classmethod
#     def test(cls):  			# 类方法
#         print("我是类方法")
# car = Car()
# car.test()            # 通过对象调用类方法
# Car.test()            # 通过类调用类方法

# class Car:
#     wheels = 4                    # 定义类属性
#     @classmethod                  # 定义类方法
#     def test(cls):
#         print(cls.wheels)        # 通过cls访问类属性
#         cls.wheels = 6            # 通过cls修改类属性
#         print(cls.wheels)
# car = Car()
# car.test()


# ————————————————————  9.4.3	静态方法  ————————————————————
# class Car:
#     @staticmethod                  # 定义静态方法
#     def test():
#         print("我是静态方法")
# car = Car()
# car.test()                          # 通过对象调用静态方法
# Car.test()                          # 通过类调用静态方法

# class Car:
#     wheels = 4                  # 定义类属性
#     @classmethod                # 定义类方法
#     def my_test(cls):
#         print("我是类方法")
#     @staticmethod
#     def test():
#         print(Car.wheels)      # 静态方法中访问类属性
#         Car.my_test()           # 静态方法中调用类方法
# car = Car()
# car.test()


# ————————————————————  脚下留心：方法的重载  ————————————————————
# class Car:
#     def test(self):
#         print("我是实例方法")
#     def test(self, a, b):
#         print("我是有多个参数的实例方法")
#     @classmethod
#     def test(cls):
#         print("我是类方法")
#     @staticmethod
#     def test():
#         print("我是静态方法")
# car = Car()
# car.test()


# ————————————————————  9.4.4	私有方法  ————————————————————
class Car:
    def __test(self):            # 定义私有方法
        print("测试")
    def drive(self):             # 在类内部调用私有方法
        self.__test()
car = Car()
car.drive()
# car.__test()                      # 在类外部调用私有方法
